package io;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

/**
 * 缓冲输出流写出数据的缓冲区问题
 */
public class FlushDemo {
    public static void main(String[] args) throws IOException {
        // 创建一个缓冲输入存取小于8k的文件或者字符串
        FileOutputStream fos = new FileOutputStream("./src/main/java/io/flush.txt");
        // 缓冲输入流
        BufferedOutputStream bos = new BufferedOutputStream(fos);


        String str = "解决缓冲输出流的问题";
        // 将字符串转为字节数组
        byte[] data = str.getBytes(StandardCharsets.UTF_8);

        // 使用缓冲输出流去写入数据
        bos.write(data);
        // 可以看到，文件当中没有东西
        /*
        void flush() 将缓冲流中的数据一次全部输入到目的地中
        所有的输出流都有flush方法，
        但是，除了缓冲输出流，其他高级输出流方法都相同
         */
        bos.flush();
        bos.close();
    }
}
